#include "lvgl/lvgl.h"
#include "../ui.h"
#include "../app_data.h"  // 包含全局预约信息结构体
#include <string.h>
#include <stdio.h>

// 全局UI对象
lv_obj_t *ui_Screen9;
static lv_obj_t *info_container;  // 信息展示容器
static lv_obj_t *info_label;      // 信息展示标签
LV_FONT_DECLARE(lv_font_fan_24);  // 复用自定义字体
extern ReservationInfo g_reservation; // 全局预约信息

// 函数原型
static void back_to_main_btn_event_handler(lv_event_t *e); // 返回主页按钮
 void update_reservation_display(void);              // 更新预约信息显示

// -------------------------- 1. 事件回调 --------------------------
static void back_to_main_btn_event_handler(lv_event_t *e) {
    lv_scr_load(ui_Screen4); // 跳转到主页（根据实际需求修改目标屏幕）
}

// -------------------------- 2. 信息展示更新 --------------------------
void update_reservation_display(void) {
    if (!lv_obj_is_valid(info_label)) return;

    // 检查是否有有效的挂号信息（以医生姓名是否为空为例）
    if (strlen(g_reservation.doctor) == 0) {
        lv_label_set_text(info_label, "暂无挂号信息");
    } else {
        char info_text[500];
        snprintf(info_text, sizeof(info_text), 
                 "  科室：%s\n\n"
                 "  医生：%s\n\n"
                 "  日期：%s\n\n"
                 "  时段：%s\n\n"
                 "  预约时余票：%d张\n\n"
                 "  预约状态：已确认\n\n"
                 "  温馨提示：请携带身份证原件，提前30分钟到院取号",
                 g_reservation.dept,
                 g_reservation.doctor,
                 g_reservation.date_show,
                 g_reservation.time,
                 g_reservation.remain_ticket);
        lv_label_set_text(info_label, info_text);
    }
}

// -------------------------- 3. Screen9 初始化与销毁 --------------------------
void ui_Screen9_screen_init(void) {
    // 避免重复创建：如果Screen9已存在，先销毁
    if (ui_Screen9) {
        lv_obj_del(ui_Screen9);
        ui_Screen9 = NULL;
    }

    // 创建 Screen9 主对象
    ui_Screen9 = lv_obj_create(NULL);
    lv_obj_clear_flag(ui_Screen9, LV_OBJ_FLAG_SCROLLABLE);
    lv_obj_set_style_bg_color(ui_Screen9, lv_color_hex(0xF5F7FA), 0); // 浅灰背景

    // 创建信息展示容器（统一管理所有子控件）
    info_container = lv_obj_create(ui_Screen9);
    lv_obj_set_size(info_container, lv_pct(100), lv_pct(100));
    lv_obj_set_style_bg_opa(info_container, LV_OPA_0, 0); // 透明容器，仅用于布局

    // 标题：我的预约详情
    lv_obj_t *title_label = lv_label_create(info_container);
    lv_label_set_text(title_label, "我的预约详情");
    lv_obj_set_style_text_font(title_label, &lv_font_fan_24, 0);
    lv_obj_set_style_text_color(title_label, lv_color_hex(0x1E88E5), 0);
    lv_obj_align(title_label, LV_ALIGN_TOP_MID, 0, 30);

    // 信息展示标签
    info_label = lv_label_create(info_container);
    lv_obj_set_style_text_font(info_label, &lv_font_fan_24, 0);
    lv_obj_set_style_text_color(info_label, lv_color_hex(0x333333), 0);
    lv_obj_align(info_label, LV_ALIGN_CENTER, 0, 0);
    lv_label_set_long_mode(info_label, LV_LABEL_LONG_WRAP); // 自动换行
    lv_obj_set_width(info_label, lv_pct(80));

    // 返回按钮
    lv_obj_t *back_btn = lv_btn_create(info_container);
    lv_obj_set_size(back_btn, 150, 50);
    lv_obj_align(back_btn, LV_ALIGN_BOTTOM_MID, 0, -50);
    lv_obj_set_style_bg_color(back_btn, lv_color_hex(0x1E88E5), 0);
    lv_obj_add_event_cb(back_btn, back_to_main_btn_event_handler, LV_EVENT_CLICKED, NULL);

    lv_obj_t *back_btn_label = lv_label_create(back_btn);
    lv_label_set_text(back_btn_label, "返回主页");
    lv_obj_set_style_text_font(back_btn_label, &lv_font_fan_24, 0);
    lv_obj_set_style_text_color(back_btn_label, lv_color_white(), 0);
    lv_obj_center(back_btn_label);

    update_reservation_display();
}

void ui_Screen9_screen_deinit(void) {
    if (ui_Screen9) {
        lv_obj_del(ui_Screen9); 
        ui_Screen9 = NULL;
        info_container = NULL;
        info_label = NULL;
    }
}